MongoDB তে Transactions এর ধারণা

Java Technologies - জাভা মঙ্গোডিবি (Java MongoDB) - MongoDB এর Transactions
149

MongoDB ৪.০ ভার্সন থেকে ট্রানজ্যাকশন (Transactions) সমর্থন করে, যা ডেটাবেসের মধ্যে একাধিক অপারেশন সম্পাদন করার সময় এটমিকিটি (Atomicity), একসঙ্গে কার্যকরতা (Consistency), আইসোলেশন (Isolation), এবং স্থায়ীত্ব (Durability) নিশ্চিত করে। এটি একাধিক ডকুমেন্ট এবং কোলেকশন মধ্যে একযোগভাবে পরিবর্তন সাধন করতে সহায়তা করে, যা আগে MongoDB এর NoSQL প্রাকৃতিক কাঠামোর কারণে সম্ভব ছিল না।


MongoDB তে ট্রানজ্যাকশন এর সুবিধা

১. একাধিক অপারেশন একত্রে সম্পাদন

MongoDB তে ট্রানজ্যাকশন ব্যবহার করে, একাধিক ডকুমেন্ট বা কোলেকশনের মধ্যে একযোগে অপারেশন করা যায়। এর ফলে আপনি অনেক অপারেশনকে একত্রিত করে একটি নির্দিষ্ট সময়ে শেষ করতে পারেন।

২. এটমিক ট্রানজ্যাকশন

MongoDB তে ট্রানজ্যাকশন নিশ্চিত করে যে সব অপারেশন সফল হলে তা কমিট হবে এবং যদি কোনো ত্রুটি ঘটে তবে পুরো অপারেশনটি রোলব্যাক (rollback) হবে। এটি ডেটাবেসের কোর্স বা স্টেটকে পুরোপুরি অব্যাহত রাখে।

৩. ডেটার আইসোলেশন

MongoDB তে ট্রানজ্যাকশন চলাকালীন, অন্য কোনো অপারেশন আপনার ট্রানজ্যাকশন ডেটাকে প্রভাবিত করতে পারবে না, এটি আইসোলেশন নিশ্চিত করে।

৪. একাধিক কোলেকশনে ট্রানজ্যাকশন

MongoDB তে ট্রানজ্যাকশন ব্যবহার করে একাধিক কোলেকশনে একযোগভাবে পরিবর্তন করা সম্ভব, যা পুরনো MongoDB সংস্করণে ছিল না।


MongoDB তে ট্রানজ্যাকশন ব্যবহারের প্রাথমিক কোড

MongoDB তে ট্রানজ্যাকশন শুরু, সম্পন্ন বা রোলব্যাক করার জন্য আপনি ClientSession ব্যবহার করেন। নিচে একটি উদাহরণ দেওয়া হলো:

১. ট্রানজ্যাকশন শুরু করা

import com.mongodb.client.*;
import org.bson.Document;
import com.mongodb.MongoClient;
import com.mongodb.MongoClientURI;

MongoClientURI uri = new MongoClientURI("mongodb://localhost:27017");
MongoClient mongoClient = new MongoClient(uri);
MongoDatabase database = mongoClient.getDatabase("testDatabase");

// সেশন তৈরি করা
ClientSession session = mongoClient.startSession();

// ট্রানজ্যাকশন শুরু
session.startTransaction();

২. ডেটা ইনসার্ট করা ট্রানজ্যাকশনের মধ্যে

MongoCollection<Document> collection = database.getCollection("testCollection");

try {
    Document doc = new Document("name", "Alice").append("age", 25);
    collection.insertOne(session, doc);

    session.commitTransaction();  // ট্রানজ্যাকশন সফলভাবে কমিট করা
} catch (Exception e) {
    session.abortTransaction();  // ত্রুটি ঘটলে ট্রানজ্যাকশন রোলব্যাক
} finally {
    session.close();
}

৩. ট্রানজ্যাকশন রোলব্যাক

যদি কোনো ত্রুটি ঘটে বা আপনি ট্রানজ্যাকশনটি বাতিল করতে চান, তাহলে abortTransaction() ব্যবহার করতে হবে। উদাহরণ:

session.abortTransaction();  // যদি কোনো সমস্যা হয় তবে রোলব্যাক

MongoDB তে ট্রানজ্যাকশনের সীমাবদ্ধতা

১. পারফরম্যান্স

যদিও ট্রানজ্যাকশন MongoDB তে সমর্থিত, তবে একাধিক ট্রানজ্যাকশন পরিচালনা করার ফলে পারফরম্যান্স কিছুটা কম হতে পারে, বিশেষ করে বৃহত্তম ডেটাসেটগুলির ক্ষেত্রে।

২. একমাত্র Replica Sets

MongoDB তে ট্রানজ্যাকশন কেবলমাত্র replica set কনফিগারেশনের মধ্যে সমর্থিত, আর শার্ডিংয়ের মধ্যে (তবে, MongoDB ৪.২ এর পর শার্ডিংয়ে ট্রানজ্যাকশন কিছুটা সমর্থিত) এটি কিছু সীমাবদ্ধতা থাকতে পারে।


MongoDB তে ট্রানজ্যাকশন ব্যবহারের মাধ্যমে আপনি আপনার ডেটাবেসে আরো বেশি নিয়ন্ত্রণ এবং নিরাপত্তা নিশ্চিত করতে পারেন। এটি বিশেষ করে যখন আপনি একাধিক ডকুমেন্ট বা কোলেকশনে একযোগে কার্যক্রম চালাতে চান, তখন খুবই কার্যকরী।


Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...